Light-field display

ABSTRACT

A light-field display is provided that renders a light-field at one or more viewing apertures through a microlens array. The light-field display includes a display such as a monitor that is positioned behind the microlens array. The monitor and the microlens array are positioned so that light emitted from a pixel of the monitor reaches the one or more apertures through at most one microlens from the microlens array. For each microlens in the microlens array, the pixels of the monitor visible through that microlens of the microlens array at the one or more apertures is determined, and a light-field is then rendered at each of the one or more viewing apertures by rendering the determined pixels corresponding to each microlens.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. patent application Ser. No.12/430,896, filed on Apr. 28, 2009, the contents of which are herebyincorporated by reference in their entirety.

BACKGROUND

A three-dimensional (3-D) display is a display that enhances viewerperception of depth by stimulating stereopsis, motion parallax, or both.Stereopsis provides different images to the two eyes, such that retinaldisparity indicates simulated depth. Motion parallax changes the imagesviewed by the eyes as a function of the position of the eyes, again suchthat simulated depth is indicated.

3-D displays are useful for many applications including vision research,operation of remote devices, medical imaging, surgical training,scientific visualization, virtual prototyping, and more. These 3-Ddisplays typically render a light-field to a viewer that includes a 3-Dscene or image. For example, a surgical training application may rendera 3-D light-field that includes a particular part of the anatomy.

In many of these applications, it is useful to render a faithfulimpression of the 3-D structure of the portrayed object in thelight-field. However, 3-D displays often yield distortions in aperceived light-field compared with the actual light-field that the 3-Ddisplay purports to represent. A cause of the distortions is thatcomputer displays typically present images on one surface. For example,a typical computer display is a monitor having a flat display surface. A3-D light-field is generated by illumination from the surface of themonitor. In order to view the light-field, the user focuses on thesurface of the monitor, rather than at the depths of the virtual objectsportrayed by the light-field. Thus, focus cues in the 3-D light-fielddisplayed on the monitor specify the depth of the monitor, rather thandepths in the depicted scene.

SUMMARY

A light-field display is provided that renders a light-field at one ormore viewing apertures through a microlens array. The light-fielddisplay includes a display such as a monitor that is positioned behindthe microlens array. The monitor and the microlens array are positionedso that light emitted from a pixel of the monitor reaches each of theone or more apertures through at most one microlens from the microlensarray. For each microlens in the microlens array, the pixels of themonitor visible through that microlens of the microlens array at the oneor more apertures are determined, and a light-field is then rendered ateach of the one or more viewing apertures by rendering the determinedpixels corresponding to each microlens. As the position of the one ormore viewing apertures change in the light-field display, the pixelsthat are visible at the one or more apertures through each individualmicrolens may be re-determined, and the pixels may be re-rendered. Thus,the assignment of pixels to microlenses is not static, and isdynamically assigned according to the positions of the one or moreapertures.

In an implementation, a microlens array may be positioned in front of adisplay at a separation distance. A location of a first viewing aperturein front of the microlens array may be determined. A location of asecond viewing aperture in front of the microlens array may bedetermined. For each microlens in the microlens array, pixels of thedisplay that are visible at the first viewing aperture through thatmicrolens of the microlens array may be determined. For each microlensin the microlens array, pixels of the display that are visible at thesecond viewing aperture through that microlens of the microlens arraymay be determined. For each microlens, the determined pixels that arevisible at the first viewing aperture through that microlens of themicrolens array and the determined pixels that are visible at the secondviewing aperture through that microlens of the microlens array may bealternatively rendered (e.g., because the determined pixels may be thesame pixels, since in an implementation, all or almost all of the pixelsmay be visible within each aperture). The first and second viewingapertures may correspond to a first aperture and a second aperture of apair of glasses. The first aperture of the glasses may be closed duringthe rendering for the second viewing aperture, and the second apertureof the glasses may be closed during the rendering for the first viewingaperture. A location signal may be received from the glasses, and thelocation of the first aperture may be determined from the locationsignal. The pixels of the display that are visible at the first viewingaperture through each microlens of the microlens array may be determinedby ray tracing from the first viewing aperture through the microlens ofthe microlens array.

In an implementation, a microlens array may be positioned in front of adisplay device at a microlens separation. A location of a first viewingaperture in front of the microlens array may be determined. For eachmicrolens, pixels of the display that are visible at the first viewingaperture through that microlens of the microlens array may bedetermined. For each microlens, the determined pixels may be rendered todisplay a portion of a light-field at the first viewing aperture throughthat microlens of the microlens array. A location of a second viewingaperture in front of the microlens array may be determined. For eachmicrolens, pixels of the display that are visible at the second viewingaperture through that microlens of the microlens array may bedetermined. For each microlens, the determined pixels may be rendered todisplay a portion of the light-field at the second viewing aperturethrough that microlens of the microlens array. The first and secondviewing apertures may correspond to a first aperture and a secondaperture of a pair of glasses. A location signal may be received fromthe glasses and the location of the first aperture may be determinedfrom the location signal. The pixels of the display that are visible atthe first viewing aperture through a microlens may be determined by raytracing from the first viewing aperture through the microlens of themicrolens array.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofillustrative embodiments, is better understood when read in conjunctionwith the appended drawings. For the purpose of illustrating theembodiments, there is shown in the drawings example constructions of theembodiments; however, the embodiments are not limited to the specificmethods and instrumentalities disclosed. In the drawings:

FIG. 1 is an illustration of a top view of an implementation of alight-field display;

FIG. 2 is a block diagram of an implementation of a monitor processor;

FIG. 3 is an operational flow of an implementation of a method foroperating a light-field display;

FIG. 4 is an operational flow of an implementation of a method foroperating a light-field display with multiple viewing apertures; and

FIG. 5 is a block diagram of an example computing environment that maybe used in conjunction with example embodiments and aspects.

DETAILED DESCRIPTION

FIG. 1 is an illustration of a top view of an implementation of alight-field display 100. The light-field display 100 may include amonitor 120. The monitor 120 may be implemented using a variety of knowndisplay types including, but not limited to, cathode ray tube displays,liquid crystal displays, plasma displays, and rear projection displays.Any known display type may be used. The particular components andfeatures shown in FIG. 1 are not shown to scale with respect to oneanother.

The monitor 120 may include a plurality of pixels 125. The pixels 125 ofthe monitor 120 represent the smallest unit of the monitor 120 that maybe activated independently. For example, each of the pixels 125 may beindependently controlled and set to output light at a particular colorand intensity. While only a certain number of pixels 125 are shown inFIG. 1, it is for illustrative purposes only; any number of pixels 125may be supported by the monitor 120. In addition, because FIG. 1represents a top view of the light-field display 100, there may beadditional rows of pixels 125 that are not visible in FIG. 1. Forexample, in some implementations, the monitor 120 may have a pixelresolution of 1280×1024 pixels. Other resolutions may also be used.

The pixels 125 may have an associated diameter. The diameter of each ofthe pixels 125 may be uniform and depend on the underlying technology ofthe monitor 120. For example, where the monitor 120 is an LCD display,the diameters of the pixels 125 may be 0.125 mm. While the pixels 125are described as having a diameter, this is not meant to imply that thepixels 125 are limited to shapes that are circular or near-circular. Thepixels 125 may be any of a variety of shapes including round, oval,rectangular, square, and near-square, for example.

The light-field display 100 may further include viewing apertures 140 aand 140 b. The viewing apertures 140 a and 140 b may be used to view alight-field generated by the light-field display 100. In someimplementations, the viewing apertures 140 a and 140 b may correspond tothe eyes of a viewer. For example, the viewing aperture 140 a maycorrespond to a left eye of the viewer and the viewing aperture 140 bmay correspond to a right eye of the viewer. In some implementations,the viewing apertures 140 a and 140 b may not have physical boundariesbut may be “virtual” and correspond to a region of space in thelight-field display through which a correct light-field may be viewed.While only two apertures 140 a and 140 b are shown in FIG. 1, it is forillustrative purposes only. Any number of apertures may be supported bythe light-field display 100.

In some implementations, the viewing apertures 140 a and 140 b may havea diameter that is sized to accommodate the size range of the humanpupil. For example, human pupil diameters are typically in the range of2 mm to 6 mm. Thus, including sufficient extra space to accommodatefully expanded pupils, the diameters of the viewing apertures may beapproximately 10 mm. Other sized viewing apertures 140 a and 140 b maybe used.

In some implementations, the locations of the viewing apertures 140 aand 140 b in the light-field display may be fixed. In particular, thedisplay distance 112 may be a fixed distance. For example, the viewingapertures 140 a and 140 b may correspond to viewing holes through whichthe viewer may view a light-field. The viewing holes may be integratedinto the light-field display 100, for example.

In other implementations, the viewing apertures 140 a and 140 b may bemoveable with respect to the light-field display 100. The viewingapertures 140 a and 140 b may be moveable in three dimensions, orlimited to two dimensions. For example, the display distance 112 may begenerally fixed, but the apertures 140 a and 140 b may otherwise moveleft, right, up, and down while the display distance 112 is generallymaintained.

The light-field display 100 may comprise a microlens array 130. Themicrolens array 130 may comprise a plurality of microlenses, includingmicrolenses 131 and 132. While the microlens array 130 shown comprises acertain number of microlenses, it is for illustrative purposes only; anynumber of microlenses may be used in the microlens array 130. Inaddition, as described above, because FIG. 1 is a top view of the of thelight-field display 100, there may be additional rows of microlenses inthe microlens array 130 that are not visible in FIG. 1. Further, themicrolenses of the microlens 130 array may be packed or arranged in avariety of patterns, including a hexagonal, octagonal, or other shapedgrid.

The microlens array 130 may be positioned in front of the monitor 120.The distance between the monitor 120 and the microlens array 130 isreferred to as the microlens separation 111. The microlens separation111 may be chosen such that light emitting from each of the pixels 125passes through each of the microlenses of the microlens array 130. Themicrolenses of the microlens array 130 may be selected such that lightpassing from each individual pixel of the monitor 120 is viewable ateach aperture 140 a and 140 b through only one of the microlenses of themicrolens array 130. While light from the individual pixels may passthrough each of the microlenses in the microlens array 130, the lightfrom a particular pixel may only be visible at each aperture 140 a and140 b through at most one microlens. Further, the microlens that theparticular pixel is visible through may be different for each aperture140 a and 140 b.

For example, as illustrated in FIG. 1, light 151 from a first pixel 126is viewable through the microlens 131 at the aperture 140 a at thedisplay distance 112. Similarly, light 152 from a second pixel 127 isviewable through the microlens 132 at the aperture 140 b at the displaydistance 112. While light from the pixels 126 and 127 passes through theother microlenses in the microlens array 130 (not shown), only the light151 and 152 from the pixels 126 and 127 that pass through themicrolenses 131 and 132 are visible at the viewing apertures 140 a and140 b. Note, that light from pixel 126 may also be visible at aperture140 b through a microlens and light from pixel 127 may also be visibleat aperture 140 a through a microlens. As will be described later, theapertures 140 a and 140 b may be alternatively closed and opened duringalternative pixel renderings for the apertures 140 a and 140 b, forexample.

In some implementations, the relationships between the selectedmicrolens separation 111, the selected display distance 112, theselected diameter and focus length of the microlenses of the microlensarray 130, and the selected diameter of the pixels 125 may be describedby one or more following formulas.

A variable k may represent the square root of a number of pixels 125that may illuminate (i.e., be visible from) either of the apertures 140a and 140 b through a single microlens of the microlens array 130. Thusthe value of k may be described by the formula: k=2×(aperturediameter/minimum pupil diameter). Thus, k may equal 2×(10 mm/2 mm),i.e., 10.

A variable q may represent the Nyquist spatial frequency (i.e., themaximum angular rate of intensity variation that may be correctlyportrayed to a viewpoint within an aperture) and may include the rangeof special frequencies that are known to stimulate human accommodation(e.g., focus adjustment for the eyes). This range is known to beapproximately 4 to 8 cycles per degree. In some implementations, aconservative estimate of 20 cycles per degree may be selected. Thus,q=20 cycles per degree. Other values may also be selected for q.

As described above, the microlenses of the microlens array 130 have theproperty that no pixel is visible at each of the viewing apertures 140 aand 140 b through more than one microlens. Thus, the diameter of themicrolenses of the microlens array 130 may be represented by theformula: microlens diameter=k×pixel diameter. Thus, given the pixeldiameter of 0.125 mm and a k value of 10, the microlens diameter may be1.25 mm, for example. Other, values for the microlens diameter may beused, and in some implementations may be smaller than k×the pixeldiameter.

The display distance 112 may be defined by the formula: display distance112=the microlens diameter/(tan(1/(2×q))). Thus, in someimplementations, for a microlens diameter of 1.25 mm and a q of 20 cpd,the display distance 112 may be 2.86 m, for example.

The microlens separation 111 may be defined by the formula: microlensseparation 111=(display distance×microlens diameter)/aperture diameter.Thus, in some implementations, for a display distance of 2.86 m, amicrolens diameter of 1.25 mm and an aperture diameter of 10 mm, themicrolens separation 111 may be 0.358 m, for example.

The focal length of the microlenses of the microlens array 130 may bechosen to focus light at the apertures 140 a and 140 b at the displaydistance 112. Thus, the focal length may selected according to theformula: focal length=1/((1/display distance)+(1/microlens separation)).In some implementations, given the display distance 112 of 2.86 m andthe microlens separation 111 of 0.358 m, the focal length may be 0.318m, for example.

A monitor processor 115 may control the light output of the pixels 125,such as the light 151 of the first group of pixels 126 and the light 152of the second group of pixels 127. The light output may include thecolor and intensity of the light displayed by each pixel. The monitorprocessor 115 may also track the location of the apertures 140 a and 140b in the light-field display 100, and given the location of theapertures 140 a and 140 b, for each microlens in the microlens array130, adjust the output of the pixels 125 viewable through the microlensat the apertures 140 a and 140 b such that a particular light-field isviewed at the apertures 140 a and 140 b. The light-field may be a 3-Dimage or scene, for example. In some implementations, the image or scenemay be part of a 3-D video such as a 3-D movie or television broadcast,for example. A variety of sources may provide the light-field to themonitor processor 115.

The monitor processor 115 may track and/or determine the location of theapertures 140 a and 140 b in the light-field display 100. In someimplementations, the monitor processor 115 may track the location of theapertures 140 a and 140 b using location and/or tracking devicesassociated with the apertures 140 a and 140 b. For example, theapertures 140 a and 140 b may have tracking devices attached to themthat may transmit location signals (through a wire or wirelessly) to themonitor processor 115. The monitor processor 115 may receive thelocation signals and may use the location signals to determine thelocation of the apertures 140 a and 140 b in the light-field display100. Any system, method, or technique known in the art for determining alocation may be used. Where the locations of the apertures 140 a and 140b are fixed, the monitor processor 115 may determine the location of theapertures 140 a and 140 b by referencing a stored file or variable, forexample.

The monitor processor 115 may determine, for each microlens, which ofthe pixels 125 are visible from the apertures 140 a and 140 b throughthat microlens given the determined locations of the apertures 140 a and140 b. In some implementations, the monitor processor 115 may determinethe pixels that are visible from the apertures 140 a and 140 b througheach individual microlens in the microlens array 130 given the locationsof the apertures 140 a and 140 b by ray tracing from the apertures 140 aand 140 b through each of the microlenses of the microlens array 130 anddetermining which of the pixels 125 are reachable by the rays througheach individual microlens. Other techniques may also be used.

In some implementations, the pixels that are visible through eachindividual microlens of the microlens array 130 may have beenpre-computed for a variety of aperture 140 a and 140 b positions. Forexample, the ray tracing may be performed for a variety of aperture 140a and 140 b positions in the light-field display 100. The pixels thatare visible through each individual microlens of the microlens array 130at the various positions may be determined and stored as a table orother data structure. The monitor processor 115 may determine thelocation of the apertures 140 a and 140 b, and may reference the tableto determine, for each microlens, which of the pixels 125 are visiblethrough that microlens of the microlens array 130 for the determinedlocations of the apertures 140 a and 140 b.

FIG. 2 is a block diagram of an implementation of a monitor processor115. The monitor processor 115 may be implemented using a computingdevice such as the computing device 500 described below with respect toFIG. 5. The monitor processor 115 may include a variety of componentsincluding an aperture tracker 240. The aperture tracker 240 maydetermine a location of one or more apertures (e.g., apertures 140 a and140 b) in the light-field display 100. In some implementations, theaperture tracker 240 may receive location information from a tracker orother location device associated with one or more of the apertures. Forexample, the apertures 140 a and 140 b may be implemented usingspecialized glasses or goggles. A pair of glasses may transmit locationinformation to the aperture tracker 240, which may then use the trackinginformation to calculate or otherwise determine the location of theapertures 140 a and 140 b in the light-field display 100. Any system,method, or technique for determining the location of the apertures 140 aand 140 b may be used.

The monitor processor 115 may further include a ray tracer 230. The raytracer 230 may determine which ones of the pixels 125 of the monitor 120are visible through each individual microlens of the microlens array 130from one or more apertures in the light-field display given the locationof the one or more apertures in the light-field display as determined bythe aperture tracker 240.

In some implementations, the ray tracer 230 may determine which of thepixels 125 are visible through each individual microlens of themicrolens array 130 by performing ray tracing from the determinedlocation of the one or more apertures in the light-field display 100through each microlens of the microlens array 130, and determining thepixels that are reached by the rays for each individual microlens. Thepixels that can be reached by a ray originating from an aperture througha microlens of the microlens array 130 are the pixels that are visiblethrough that microlens. In some implementations, the ray tracer 230 mayperform the ray tracing determination. In other implementations, the raytracing determinations may have been previously computed for a varietyof aperture locations in the light-field display and stored as a tableor other data structure. The ray tracer 230 may then determine thepixels that are visible through each individual microlens of themicrolens array 130 at an aperture by referencing the table using thelocation of the aperture provided by the aperture tracker 240, forexample.

In other implementations, rays may be traced from each of the pixels 125through the microlenses of the microlens array 130 to the apertures 140a and 140 b. For example, for each of the pixels 125 a ray may be tracedthrough the center of an aperture. The intersection of the ray with themicrolens array 130 is determined, and the microlens of the microlensarray 130 that is closest to the intersection is determined. A ray maythen be traced through the center of the determined microlens from thepixel, and if the ray intersects the aperture, then the pixel is visiblethrough the determined microlens at the aperture. The rays may be tracedfrom various locations within the pixel, and if no ray intersects theaperture, then that pixel is not visible at the aperture.

The monitor processor 115 may comprise light-field data 220. Thelight-field data 220 may include a geometric description of a 3-D imageor scene for the light-field display 100 to display to a viewer at oneor more viewing apertures (e.g., apertures 140 a and 140 b). In someimplementations, the light-field data 220 may be a stored or recorded3-D image or video. In other implementations, the light-field data 220may be the output of a computer, video game system, or set-top box, etc.For example, the light-field data 220 may be received from a video gamesystem outputting data describing a 3-D scene. In another example, thelight-field data 220 may be the output of a 3-D video player processinga 3-D movie or 3-D television broadcast.

The monitor processor 115 may comprise a pixel renderer 210. The pixelrender 210 may control the output of the pixels 125 so that alight-field described by the light-field data 220 is displayed to aviewer of the light-field display 100. The pixel renderer 210 may usethe output of the ray tracer 230 (i.e., the pixels that are visiblethrough each individual microlens of the microlens array 130 at theviewing apertures 140 a and 140 b) and the light-field data 220 todetermine the output of the pixels 125 that will result in thelight-field data 220 being correctly rendered to a viewer of thelight-field display 100. For example, the pixel renderer 210 maydetermine the appropriate color and intensity for each of the pixels 125to render a light-field corresponding to the light-field data 220.

For example, for opaque scene objects, the color and intensity of apixel may be determined by the pixel renderer 210 by determining by thecolor and intensity of the scene geometry at the intersection pointnearest the aperture of a ray from the pixel that passes through themicrolens array. Computing this color and intensity may be done using avariety of known techniques. In the case of geometry that is not opaque,the ray color and intensity may be determined using a summation of thecolors and intensities of the geometry along the path of intersectionsof the ray. This calculation may be done using a variety of knowntechniques.

In some implementations, the pixel renderer 210 may stimulate focus cuesin the pixel rendering of the light-field. For example, the pixelrenderer 210 may render the light field data to include focus cues suchas accommodation and the gradient of retinal blur appropriate for thelight-field based on the geometry of the light-field (e.g., thedistances of the various objects in the light-field) and the displaydistance 112. Any system, method, or techniques known in the art forstimulating focus cues may be used.

In some implementations, the pixel renderer 210 may alternate between apixel rendering for multiple viewing apertures (e.g., viewing apertures140 a and 140 b). Because the viewing apertures 140 a and 140 b are atdifferent locations in the light-field display 100, the output of thepixels corresponding to the light-field data 220 may be differentbecause the pixels 125 that are visible through each individualmicrolens at the apertures 140 a and 140 b may be different. Thus, thepixel renderer 210 may render the light-field data 220 differently forthe viewing aperture 140 a than for the viewing aperture 140 b.

In some implementations, the pixel renderer 210 may rapidly alternatebetween a pixel rendering for the viewing aperture 140 a and a pixelrendering for the viewing aperture 140 b. For example, the pixelrenderer 210 may alternate between the rendering for the viewingaperture 140 a and the viewing aperture 140 b at a rate of every1/100^(th) of a second. Other rates may also be used. In someimplementations, the viewing apertures 140 a and 140 b may correspond tolenses of specialized glasses or eyewear. The lenses of the pair ofglasses may include shutters that close or block a viewing aperture whenthe pixel renderer 210 is rendering the light-field data 220 for anotherviewing aperture. For example, when the pixel renderer 210 is renderingthe light-field data 220 for the viewing aperture 140 a, a shuttercorresponding to the viewing aperture 140 a is opened, and a shuttercorresponding to the viewing aperture 140 b is closed. Conversely, whenthe pixel renderer 210 is rendering the light-field data 220 for theviewing aperture 140 b, the shutter corresponding to the viewingaperture 140 a is closed, and the shutter corresponding to the viewingaperture 140 b is opened.

Other methods and techniques for ensuring that the apertures 140 a and140 b receive alternating renderings of the pixels may be used. Forexample, in one implementation, viewers may wear a pair of glasses whereeach lens is separately polarized to receive different orientations oflight waves. The pixel rendering for the aperture 140 a may be displayedat a polarity that matches the left lens, and the pixel rendering forthe aperture 140 b may be displayed at a polarity that matches the rightlens. Because of the polarization, a viewer looking through a particularlens may only see light having the same polarity as the correspondinglens.

While the pixel renderer 210 is described as supporting only two viewingapertures 140 a and 140 b, it is for illustrative purposes only. Thereis no limit to the number of viewing apertures that may be supported.For example, in a light-field display 100 having four viewing apertures,the pixel renderer 210 may rapidly alternate between four renderings ofthe light-field data 220.

FIG. 3 is an operational flow of an implementation of a method 300 foroperating a light-field display. The method 300 may be implemented bythe light-field display 100 illustrated in FIG. 1, for example.

A microlens array may be positioned in front of a display (301). Themicrolens array may be a microlens array such as the microlens array 130and may be positioned in front of a display such as the monitor 120. Themicrolens array 130 may be separated from the monitor 120 by a microlensseparation 111.

The focal length of the microlenses in the microlens array 130 may bechosen such that the light emitted from a pixel of the monitor 120 isfocused at a display distance (e.g., the display distance 112). Inaddition, the microlenses of the microlens array 130 may be arranged andchosen such that for any pixel of the monitor 120, the pixel is visiblefrom a viewing aperture at the display distance 112 though only a singlemicrolens.

A location of a viewing aperture in front of the microlens array may bedetermined (303). The location of the viewing aperture may be determinedby the aperture tracker 240 of the monitor processor 115, for example.In some implementations, the location of the viewing aperture may bedetermined by a tracking device associated with the viewing aperture.The tracking device may transmit a signal to the light-field display 100to the aperture tracker 240. The aperture tracker 240 may then determinethe location of the viewing aperture using the received signal. Othermethods for determining the location of the viewing aperture may be usedsuch a camera or ultrasound device. In other implementations, thelocation of the viewing aperture in the light-field display 100 may befixed and the location of the viewing aperture may then be determined bythe aperture tracker 240 by referencing a variable or file specifyingthe fixed location of the viewing aperture.

For each microlens, pixels of the display that are visible at theviewing aperture through the individual microlens of the microlens arraymay be determined (305). The visible pixels may be determined for eachmicrolens by the ray tracer 230 of the monitor processor 115, forexample. In some implementations, the visible pixels for a microlens maybe determined by ray tracing from the location of the viewing aperturethrough the microlens of the microlens array 130 and to the pixels 125of the monitor 120. For example, multiple rays of light may be tracedfrom the viewing aperture through each of the microlenses of themicrolens array 130. The particular pixels of the monitor 120 that arereachable through a microlens of the microlens array 130 by a light raymay be determined to be viewable through that microlens.

In some implementations, the ray tracer 230 may perform the ray tracingusing the determined location of the viewing aperture. In otherimplementations, the ray tracing may have been performed previously fora variety of viewing aperture positions and stored in a table or otherdata structure. The ray tracer 230 may determine the pixels that arevisible through each individual microlens in the microlens array 130 byreferencing the stored table, for example.

For each microlens, the determined pixels may be rendered to display aportion of a light-field at the viewing aperture (307). The pixels 125of the monitor 120 may be rendered by the pixel renderer 210 of themonitor processor 115, for example. In some implementations, the pixelrenderer 210 may render a light-field corresponding to light-field data220. The light-field data 220 may correspond to a 3-D image or 3-Dvideo. For example, the light-field data 220 may correspond to theoutput of 3-D computer application.

In some implementations, the pixel renderer 210 may determine the pixels125 to illuminate for each microlens based on the pixels that arevisible at the viewing aperture through that microlens of the microlensarray 130 as determined by the ray tracer 230. As described above, eachpixel may be visible at a viewing aperture through at most onemicrolens. The pixel renderer 210 may transform the light-field data 220to account for the location of the viewing aperture and the pixels thatare visible through individual microlenses at the location of theviewing aperture, and illuminate the pixels 125 such that the viewer atthe viewing aperture correctly perceives the light-field correspondingto the light-field data 220.

FIG. 4 is an operational flow of an implementation of a method 400 foroperating a light-field display with multiple viewing apertures. Themethod 400 may be implemented by the light-field display 100 illustratedin FIG. 1, for example.

A location of a first viewing aperture in front of a microlens array maybe determined (401). The location of the first viewing aperture may bedetermined by the aperture tracker 240 of the monitor processor 115, forexample. In some implementations, the location of the first viewingaperture may be determined by a tracking device associated with thefirst viewing aperture. The tracking device may transmit a locationsignal to the aperture tracker 240. The aperture tracker 240 may thendetermine the location of the first viewing aperture using the receivedsignal. Other methods for determining the location of the first viewingaperture may be used. In other implementations, the location of thefirst viewing aperture in the light-field display 100 may be fixed andthe location of the first viewing aperture may then be determined by theaperture tracker 240 by referencing a variable or file specifying thefixed location of the first viewing aperture.

A location of a second viewing aperture in front of the microlens arraymay be determined (403). The location of the second viewing aperture maybe determined by the aperture tracker 240 of the monitor processor 115,for example. In some implementations, the first viewing aperture and thesecond viewing aperture may correspond to a left and right eye of aviewer. The first and second viewing apertures may be approximately tenmillimeters. Other sizes may be used for the first and second viewingapertures.

In some implementations, the first and second viewing apertures may bethe left and right apertures of a pair of glasses or goggles used by aviewer to view the light-field display 100. The pair of glasses may havean integrated tracking device that allows the location of the first andsecond apertures to be determined. The pair of glasses may be wired tothe aperture tracker 240 of the monitor processor 115, or may bewireless, for example.

For each microlens, pixels of the display that are visible at the firstviewing aperture through the individual microlens of the microlens arraymay be determined (405). The pixels visible through each microlens atthe first viewing aperture may be determined by the ray tracer 230 ofthe monitor processor 115, for example. In some implementations, thepixels visible through an individual microlens at the first viewingaperture may be determined by ray tracing from the location of the firstviewing aperture through the microlens array and to the pixels 125 ofthe monitor 120.

For each microlens, pixels of the display that are visible at the secondviewing aperture through each individual microlens of the microlensarray may be determined (407). The pixels may be determined by the raytracer 230 of the monitor processor 115 in a similar manner as describedabove for the first viewing aperture, for example.

For each microlens, the determined pixels that are visible at the firstviewing aperture and the determined pixels that are visible at thesecond viewing aperture may be alternatively rendered to display aportion of a light-field at the first and second viewing apertures(409). The pixels 125 of the monitor 120 may be alternatively renderedby the pixel renderer 210 of the monitor processor 115, for example.

In some implementations, the pixel renderer 210 may render a light-fieldcorresponding to light-field data 220 for the first viewing aperture andthe second viewing aperture. The light-field data 220 may correspond toa 3-D image or 3-D video. For example, the light-field data 220 maycorrespond to the output of set-top box processing a 3-D movie or 3-Dtelevision program.

In some implementation, the pixel renderer 210 may determine the pixelsto illuminate for the first viewing aperture based on the pixels 125that are visible at the first viewing aperture through each individualmicrolens of the microlens array 130 as determined by the ray tracer230. Similarly, the pixel renderer 210 may determine the pixels toilluminate for the second viewing aperture based on the pixels 125 thatare visible at the second viewing aperture through each individualmicrolens of the microlens array 130 as determined by the ray tracer230. The pixel renderer 210 may transform the light-field data 220 toaccount for the locations of the first and second viewing apertures andthe pixels 125 that are visible through each microlens at the first andsecond viewing apertures, and alternatively illuminate the pixels 125such that the viewer may perceive the light-field corresponding to thelight-field data 220 through the first and second viewing apertures.

In some implementations, the pixel renderer 210 may rapidly alternatebetween rendering the pixels 125 for the first and second viewingapertures. A pair of glasses associated with the first and secondviewing apertures may be synced with the pixel renderer 210 such thatthe first viewing aperture is closed when the pixel renderer 210 rendersthe pixels 125 for the second viewing aperture, and the second viewingaperture is closed when the pixel renderer 210 renders the pixels 125for the first viewing aperture. In some implementations, the pixelrenderer 120 may alternate between the rendering for the first andsecond viewing apertures at a rate of every 1/100^(th) of a second.Other rates may also be used.

FIG. 5 is a block diagram of an example computing environment that maybe used in conjunction with example embodiments and aspects. Thecomputing system environment is only one example of a suitable computingenvironment and is not intended to suggest any limitation as to thescope of use or functionality.

Numerous other general purpose or special purpose computing systemenvironments or configurations may be used. Examples of well knowncomputing systems, environments, and/or configurations that may besuitable for use include, but are not limited to, personal computers(PCs), server computers, handheld or laptop devices, multiprocessorsystems, microprocessor-based systems, network PCs, minicomputers,mainframe computers, embedded systems, distributed computingenvironments that include any of the above systems or devices, and thelike.

Computer-executable instructions, such as program modules, beingexecuted by a computer may be used. Generally, program modules includeroutines, programs, objects, components, data structures, etc. thatperform particular tasks or implement particular abstract data types.Distributed computing environments may be used where tasks are performedby remote processing devices that are linked through a communicationsnetwork or other data transmission medium. In a distributed computingenvironment, program modules and other data may be located in both localand remote computer storage media including memory storage devices.

With reference to FIG. 5, an exemplary system for implementing aspectsdescribed herein includes a computing device, such as computing device500. In its most basic configuration, computing device 500 typicallyincludes at least one processing unit 502 and memory 504. Depending onthe exact configuration and type of computing device, memory 504 may bevolatile (such as random access memory (RAM)), non-volatile (such asread-only memory (ROM), flash memory, etc.), or some combination of thetwo. This most basic configuration is illustrated in FIG. 5 by dashedline 506.

Computing device 500 may have additional features/functionality. Forexample, computing device 500 may include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape. Such additional storage is illustrated in FIG. 5 byremovable storage 508 and non-removable storage 510.

Computing device 500 typically includes a variety of computer readablemedia. Computer readable media can be any available media that can beaccessed by device 500 and include both volatile and non-volatile media,and removable and non-removable media.

Computer storage media include volatile and non-volatile, and removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data. Memory 504, removable storage508, and non-removable storage 510 are all examples of computer storagemedia. Computer storage media include, but are not limited to, RAM, ROM,electrically erasable program read-only memory (EEPROM), flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the information and which can be accessed by computingdevice 500. Any such computer storage media may be part of computingdevice 500.

Computing device 500 may contain communications connection(s) 512 thatallow the device to communicate with other devices. Computing device 500may also have input device(s) 514 such as a keyboard, mouse, pen, voiceinput device, touch input device, etc. Output device(s) 516 such as adisplay, speakers, printer, etc. may also be included. All these devicesare well known in the art and need not be discussed at length here.

Computing device 500 may be one of a plurality of computing devices 500inter-connected by a network. As may be appreciated, the network may beany appropriate network, each computing device 500 may be connectedthereto by way of communication connection(s) 512 in any appropriatemanner, and each computing device 500 may communicate with one or moreof the other computing devices 500 in the network in any appropriatemanner. For example, the network may be a wired or wireless networkwithin an organization or home or the like, and may include a direct orindirect coupling to an external network such as the Internet or thelike.

It should be understood that the various techniques described herein maybe implemented in connection with hardware or software or, whereappropriate, with a combination of both. Thus, the processes andapparatus of the presently disclosed subject matter, or certain aspectsor portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage mediumwhere, when the program code is loaded into and executed by a machine,such as a computer, the machine becomes an apparatus for practicing thepresently disclosed subject matter.

In the case of program code execution on programmable computers, thecomputing device generally includes a processor, a storage mediumreadable by the processor (including volatile and non-volatile memoryand/or storage elements), at least one input device, and at least oneoutput device. One or more programs may implement or utilize theprocesses described in connection with the presently disclosed subjectmatter, e.g., through the use of an API, reusable controls, or the like.Such programs may be implemented in a high level procedural orobject-oriented programming language to communicate with a computersystem. However, the program(s) can be implemented in assembly ormachine language. In any case, the language may be a compiled orinterpreted language and it may be combined with hardwareimplementations.

Although exemplary implementations may refer to utilizing aspects of thepresently disclosed subject matter in the context of one or morestand-alone computer systems, the subject matter is not so limited, butrather may be implemented in connection with any computing environment,such as a network or distributed computing environment. Still further,aspects of the presently disclosed subject matter may be implemented inor across a plurality of processing chips or devices, and storage maysimilarly be affected across a plurality of devices. Such devices mightinclude PCs, network servers, and handheld devices, for example.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed:
 1. A light-field display comprising: a microlens arrayplaced at a separation distance from a plurality of pixels of a displaydevice; and a processor communicatively coupled to the display deviceand adapted to determine a location of a first viewing aperture, whereinthe first viewing aperture is sized to accommodate the size range of ahuman pupil.
 2. The-light field display of claim 1, wherein theprocessor is further adapted to determine, for each microlens of themicrolens array, the pixels of the display device that are visible atthe first viewing aperture through the microlens.
 3. The light-fielddisplay of claim 2, wherein the processor is further adapted to render,for each microlens of the microlens array, the determined pixels of thedisplay device that are visible at the first viewing aperture throughthe microlens to display a light-field to a viewer at the first viewingaperture.
 4. The light-field display of claim 3, wherein the processoris further adapted to: determine a location of a second viewingaperture; determine, for each microlens in the microlens array, thepixels of the display device that are visible at the second viewingaperture through the microlens.
 5. The light-field display of claim 4,wherein the processor is further adapted to render, for each microlensin the microlens array, the determined pixels of the display device thatare visible at the second viewing aperture through the microlens todisplay a light-field to the viewer at the second viewing aperture. 6.The light-field display of claim 4, wherein the processor is furtheradapted to alternate between the rendering for the first viewingaperture and the second viewing aperture.
 7. The light-field display ofclaim 6, wherein the first and second viewing apertures correspond to afirst aperture and a second aperture of a pair of glasses, wherein thepair of glasses is adapted to close the first aperture during therendering for the second viewing aperture, and close the second apertureduring the rendering for the first viewing aperture.
 8. The light-fielddisplay of claim 7, wherein the processor is further adapted to receivea location signal from the pair of glasses, and determine the locationof the first aperture from the location signal.
 9. The light-fielddisplay of claim 1, wherein the first viewing aperture is used to view alight-field generated by the light-field display.
 10. The light-fielddisplay of claim 1, further comprising the display device comprising theplurality of pixels.
 11. The light-field display of claim 1, wherein thefirst viewing aperture is a virtual viewing aperture.
 12. A light-fielddisplay comprising: a microlens array placed at a separation distancefrom a plurality of pixels of a display device; and a processorcommunicatively coupled to the display device and adapted to: determinea location of a first viewing aperture; determine a location of a secondviewing aperture; determine, for each microlens of the microlens array,the pixels of the display device that are visible at the first viewingaperture through the microlens; render, for each microlens of themicrolens array, the determined pixels of the display device that arevisible at the first viewing aperture through the microlens to display alight-field to a viewer at the first viewing aperture; determine, foreach microlens in the microlens array, the pixels of the display devicethat are visible at the second viewing aperture through the microlens;and render, for each microlens in the microlens array, the determinedpixels of the display device that are visible at the second viewingaperture through the microlens to display a light-field to the viewer atthe second viewing aperture.
 13. The light-field display of claim 12,wherein the processor is further adapted to alternate between therendering for the first viewing aperture and the second viewingaperture.
 14. The light-field display of claim 12, wherein the firstviewing aperture is sized to accommodate the size range of a humanpupil.
 15. The light-field display of claim 12, wherein the firstviewing aperture is a virtual viewing aperture.
 16. The light-fielddisplay of claim 12, wherein the first and second viewing aperturescorrespond to a first aperture and a second aperture of a pair ofglasses.
 17. A method for generating a light-field display, comprising:positioning a microlens array at a microlens separation from a displaydevice comprising a plurality of pixels; and determining a location of afirst viewing aperture in front of the microlens array, wherein thefirst viewing aperture is sized to accommodate the size range of a humanpupil.
 18. The method of claim 17, further comprising: for eachmicrolens of the microlens array, determining pixels of the displaydevice that are visible at the first viewing aperture through themicrolens of the microlens array; and for each microlens of themicrolens array, rendering the determined pixels to display a portion ofa light-field at the first viewing aperture through the microlens of themicrolens array.
 19. The method of claim 18, further comprising:determining a location of a second viewing aperture in front of themicrolens array; for each microlens of the microlens array, determiningpixels of the display device that are visible at the second viewingaperture through the microlens of the microlens array; and for eachmicrolens of the microlens array, rendering the determined pixels todisplay a portion of the light-field at the second viewing aperturethrough the microlens of the microlens array.
 20. The method of claim19, further comprising alternating between the rendering for the firstviewing aperture and the rendering for the second viewing aperture.